<?php
class MessagesManager extends Model{
	
	public function  getNombreMessages($id){
		$req = $this->pdo->prepare('SELECT COUNT(*) as total FROM messages WHERE id_destinateur = :id');
		$req->bindValue(':id',$id,PDO::PARAM_INT);
		$req->execute();
		$donnee = $req->fetch(PDO::FETCH_OBJ);
		return $donnee->total;	
	}
	
	public function getNom($id_utilisateur){
		$req = $this->pdo->prepare('SELECT nom_utilisateur,prenom_utilisateur FROM utilisateur WHERE id_utilisateur =:id');
		$req->bindValue(':id',$id_utilisateur);
		$req->execute();
		$donnee = $req->fetch(PDO::FETCH_OBJ);
		return $donnee->prenom_utilisateur.' '.$donnee->nom_utilisateur;	
	}
	
	public function getListeMessages($requete,$id_destinateur,$condition=null){
		$nbre_msg = $this->getNombreMessages($id_destinateur);
		//si on selectionne avec condition 
		$condition.= 'WHERE id_destinateur ='.$id_destinateur;
		$req = $this->pdo->query('SELECT * FROM messages '.$condition.' ORDER BY date_ajout DESC');
		$donnee = $req->fetchAll(PDO::FETCH_OBJ);
		$resultats['donnee'] = $donnee;
		$resultats['nbre_msg'] = $nbre_msg;
		return $resultats; 
	}
	
	public function supprimerMessages(array $listeId){
		for($i=0;$i<count($listeId);$i++){
			$req = $this->pdo->prepare('DELETE FROM messages WHERE id_messages =:id');
			$req->bindValue(':id',$listeId[$i]);
			$req->execute();
		}
	}
	
	public function getMessages($id_messages,$id_destinateur=null){
		$req = $this->pdo->prepare('SELECT * FROM messages WHERE id_messages = :id AND id_destinateur = :id_des');
		$req->bindValue(':id',$id_messages,PDO::PARAM_INT);
		$req->bindValue(':id_des',$id_destinateur);
		$req->execute();
		$donnee = $req->fetch(PDO::FETCH_OBJ);
		return $donnee;	
	}
	
	public function getExpediteur($id_messages){
		$req = $this->pdo->prepare('SELECT id_expediteur FROM messages WHERE id_messages = :id');
		$req->bindValue(':id',$id_messages,PDO::PARAM_INT);
		$req->execute();
		$donnee = $req->fetch(PDO::FETCH_OBJ);
		if(! empty($donnee))
		return $donnee->id_expediteur;		
	}
	
	public function sendMessages($id_expediteur,$id_destinateur,$sujet,$contenu){
		$req = $this->pdo->prepare('INSERT INTO messages SET id_expediteur = :id_exp, id_destinateur=:id_dest, sujet =
		:sujet, contenu=:contenu, date_ajout=:date_ajout');
		$req->bindValue(':id_exp',$id_expediteur,PDO::PARAM_INT);
		$req->bindValue(':id_dest',$id_destinateur,PDO::PARAM_INT);
		$req->bindValue(':sujet',htmlentities($sujet));
		$req->bindValue(':contenu',$contenu);
		$req->bindValue(':date_ajout',$this->getDateTime());
		$donnee = $req->execute();
		return $donnee;	
	}
}